

//
//  txt.swift
//  999999新浪微博
//
//  Created by 陈华 on 15/12/16.
//  Copyright © 2015年 华锐. All rights reserved.
//

import UIKit

class txt: NSObject {

    /*
    1、tabBarItem有选中状态
    2、设置tabBar渲染颜色
    3、因为是只读的，不能通过 = 赋值 ，只能通过KVC来替换Key
    4、init frame 方法是对象初始化时会调用。   layoutSubviews是对象创建好，布局fram的时候调用
    5、把控制器添加到tabBar中，系统会自动创建Item
    6、创建相应控件：懒加载创建控件
    7、imageView 添加约束的时候 不需要设置大小。 它默认是图片的大小
    8、patternImage 样式图片 是view 颜色的属性 专门为view设置背景图片的**
    9、//可选是说h 有可能被赋值成nil. h.类型的后面？
    10、取色器 取的sRGB模式。不是普通模式
    11、创建对象，init方法：类名（xxx） 同名的类方法： 类名（xxx）  不同名的类方法创建对象单例： 类名.xxx()
    12、在loadView中设置View不需要添加约束， view默认是屏幕大小
    13、collectionView添加布局对象，时一定要添加UICollectionViewFlowLayout子类的 。 滚动方向设置 是UICollectionViewFlowLayout的属性
    14、属性是可选的时候，可以在任何时候赋值。
    15、swift  中 类名.self == OC中【类名 class】
    16、类型转换： swift  as表示类型转换，stirng和NSSstirng 不需要加？i   其它类型转换 需要加？表示不一定能转换成功，返回值是一个可选， ！表示一定恩能够转换成功。
    17、按钮 和 iamge 宽高可以不设置，系统会就按照图片本身的来设置
    18、程序进入后台 和前台都会appction都会 有相应的监听方法
    *19、闭包的使用：思路：我这里需要一个值，但是没有，就调用相应的方法到这里执行。代理也是一样的，我需要一个东西，这里没有，就调用相应的方法来这里执行。
    20/映射：perosn类中有dog对象。 dog对象调用了dog的方法
    21、UINavigationBar.appearance()设置全局的Nav皮肤样式
    22、swift "bntClilk" 按钮点击与OC的不同处
    23、协议 protocol  p是小写
    24、代理写法：1、protocol ZHVisitorViewDelegate : NSObjectProtocol {} 2、weak var delegate: ZHVisitorViewDelegate?
    25、映射： 对象A中所有的元素，在对象B中都有一个唯一的元素对应。 A和B的关系就是映射， A称为原像。***
    26、重定向***
    27、代理方法不进去：原因是指定代理对象。 是代理就要指定代理对象。tabView代理 在 tabViewc中不要指定代理对象。原因是系统帮我们指定了
    28、截取字符串，先将字符串转成NSStirng类型，再调用substringToIndex 传一个长度
    29、设置全局变量。是出错 原因：有可能没值，没有变成可选类型
    30、闭包：在写签名时，它是一个变量。值调用执行时：它是一个方法。
    
    
    1、int double folat ?不能写可选  原因KVC找不到。  init构造方法中，在调用父类的super.init 之前，一定要要给不是可选类型的存储属性赋值。  
    
    
    1、每个业务模块的界面都有相同点，在每个界面都要写一些同样的代码。 创建一个基类，继承这个基类。基类中就写子类相同的代码
    2、同一个控制器在不同时候需要显示，不同的界面：可以在viewDidLoad方法中判断 
    3、网络隔离：单例。 原因：预防第三方框架本身的改变。
    
    *1、创建界面的三步曲： 加载控件 ，把控件加载到父控视图  设置必要属性*******  除了懒加载， 其它的创建控件都抽成一个方法，叫添加UI。
    *2、写代码的步骤：先添加控件，在添加数据，再做替他业务逻辑。******
    *3、写程序的方法：把所有的类都 替换成自己熟悉 person  dog studet类 。 再想到这个里面是怎样定义的*******
    
    *1、先思考清除在，开始写代码。不然写到一半就会卡克。
     2、网络隔离（单例）：所有网络请求的事情都是单例来做，-然后单例提供一个方法，让外界调用-外界处理网络请求得的数据。 - 让单例来调用第三方框架的方法。
    3、类是一个系统。 尽量让外界调用类的方法时，变的简单。类中尽量把所有的事情都做好。*******
    */
    /*
    oAtuch授权总结
    1、用web加载新浪微博的登录界面，加载完后会返回一个code.
    2、在webView代理方法中 判断是否加载网络方法中 获得code - 在这个方法要判断 是否是点击了登录 - 判断是否是点击了授权（我们可以根据点击这些按钮后显示的信息，判断点击了那个）
    3、拿到code后 POST请求，得到访问令牌access_token，通过access_token得到数据
    4、code每次都不一样。 access_token每次都是一样的值。
    
    */
    /*
    网络隔离单例总计
    1、创建的类要继承 网络类
    2、创建的对象要 在创建的时候，就转换成当前类。在外界通过这个单例对象要 调用相应方法。
    3、单例类劲量封装的完整，外界调用劲量变得简单。
    4、需要把请求的数据回调给调用者。
    
    */
}
